使用Gin作为 HTTP Server
各自优点
选择使用 Kratos
的 HTTP 服务还是使用 Gin
作为 HTTP 服务取决于项目需求和偏好。这两种方法都有各自的优势和适用场景。
使用 Kratos
官方的 HTTP 服务:
- 一体化: Kratos 提供了完整的微服务开发框架,它的 HTTP 服务与其他组件(如RPC服务、数据存储等)紧密集成,可以更轻松地构建整体功能。
- 内置特性: Kratos 的 HTTP 服务内置了一些特性,如链路追踪、健康检查、中间件等,可以更方便地管理和监控服务。
- 标准化: Kratos 是一个遵循标准化设计原则的框架,有一定的最佳实践指导,可以帮助编写更一致、可维护的代码。
使用 Gin
作为 HTTP 服务:
- 灵活性: 轻量级的框架,可以根据需求自由选择中间件和插件,以满足特定的业务需求。
- 生态系统: 拥有丰富的第三方插件和库,可以方便地扩展功能,例如验证、API文档生成等。
- 开发速度: Gin 通常被认为是一个开发速度较快的框架,适用于快速构建原型和小规模项目。
如何选择?
考虑团队熟悉度、项目规模、性能要求、扩展性等。如果已经使用了 Kratos 的其他组件,使用它的官方HTTP服务可能会更加方便。
如果更倾向于手动控制和定制,或者需要使用其他Gin提供的特性,那么使用Gin是一个不错的选择。
用法
由于使用了 gin 作为路由处理,那么就不需要在
protobuf
定义google.api.http
这个option
了
- 在不影响现有的架构情况下添加 HTTP Server时, 添加一个用户接口层
interfaces
目录(DDD 思想) - 通过
gin
写路由与处理请求和响应 - 与
kratos
集成 - 注入
gin
路由用例到wire
中